1 Bibliothèques

library(dplyr)
library(haven)
library(readxl)
library(ggplot2)
library(ggiraph)
library(plotly)

2 Importation des données

way <- here::here() #chemin relatif de notre base de données
path1 <- paste0(way,"/annual-growth-in-gni-per-capita.csv") 
path2 <- paste0(way,"/gender-inequality-index.csv")
path3 <- paste0(way,"/population-growth-annual.csv")
base_1_tp3 <- read.csv(path1)
base_2_tp3 <- read.csv(path2)
base_3_tp3 <- read.csv(path3)

3 L’algorithme

La logique a suivre a identique pour tous les trois graphiques. Il s’agira de faire après l’importation de la base de données :

    1. De selectionner les variables d’interets (Region.Name,Value,End.Year)
    1. De créer le vecteur werstern Africa contenant les pays de celui-ci afin de faire une aggrégation par la moyenne
    1. A partir du vecteur Werstern Africa, la base de données de werstern africa est créée contenant uniquement les pays de cette zone
    1. Une aggregation est faite pour avoir les données pour la zone werstern Africa. Après, une création de variable Region.Name (comme unique modalité Werstern Africa) est faite pour avoir les memes configuration que la base initiale
    1. Le meme travail est fait pour avoir la base World
    1. La base Niger est aussi obtenue en faisant un filter
    1. Après l’obtention des trois bases, on fait une superposition des bases pour avoir la base finale
    1. On utilise la library ggplot 2 pour réaliser les graphiques statiques. Ajouter de cette library, ggiraph ou plotly pour celles dynamiques.

4 Applications

4.1 Graphics 1 : Income growth and distribution (Gini Index)

4.1.1 Selection des variables clées

base_1_tp3 <- base_1_tp3%>%
  select(Region.Name,Value,End.Year)

4.1.2 Selection des données des pays de west africa

# Selection des pays
country_western_africa <- c("Benin","Burkina Faso","Cabo Verde","Gambia","Ghana","Guinea",
                            "Guinea-Bissau","Mali","Niger","Nigeria","Senegal","Togo","Côte d’Ivoire","Sierra Leone","Mauritania")

# Selection des données et aggregation des données pour avoir les données de west africa
western_africa <- base_1_tp3 %>%
  filter(Region.Name %in% country_western_africa)%>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))

# Création de la variable Region.Name pour west africa

western_africa$Region.Name="Western Africa"

# Changement des position des colonnes
western_africa <- western_africa %>%
  select(Region.Name,Value, End.Year)

4.1.3 Selection des données du Niger

data_niger <- base_1_tp3%>%
  filter(Region.Name=="Niger") #Juste prendre les données du Niger avec le filtre

4.1.4 Aggregation des données pour avoir celle de Word

# On a aggreger les données pour avoir les données de tout les pays en faisant la somme des values de chaque pays

world <- base_1_tp3 %>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))
# Creation de la variable Region.Name

world$Region.Name="World"

# Changement des position des colonnes
world <- world %>%
  select(Region.Name,Value, End.Year)

4.1.5 Fusion des trois bases (Western_africa, data_niger, world)

# Supperposion des trois bases
base_graphics_1 <- bind_rows(western_africa,data_niger,world)

4.1.6 Représentation graphics 1 : Income growth and distribution (Gini Index)

graphics_1 <-ggplot(base_graphics_1) +
 aes(x = End.Year, y = Value, colour = Region.Name) +
 geom_point(shape = "circle", size = 1.5) + #pour définir les points
 geom_line() + #Pour ajouter les lignes
 scale_color_manual(values = c(Niger = "#218ECA", 
`Western Africa` = "#4A4C4C", World = "#8C868A")) +#les couleurs des courbes
 scale_x_continuous(breaks = seq(1970, max(base_graphics_1$End.Year), by = 10)) +  # Définir le pas entre les années à 10
 theme_minimal() +#le thème (le fond)
 theme(legend.position = "top")+ #Position de la legend
 labs( title = "Figure : Income growth and distribution (Gini Index)", x="",y="")+ #titre
 guides(color = guide_legend(override.aes = list(linetype = NA), title = "")) + #Pour éliminer les traits qui sont sur la legend 
 theme(plot.title = element_text(colour = "blue",face = "italic"))#Couleur du titre
graphics_1

4.2 Graphics interactif

4.2.1 Représentation graphics 1 interactif avec ggiraph : Income growth and distribution (Gini Index)

graphics_1 <- graphics_1+geom_line_interactive(aes(data_id=base_graphics_1$Value,tooltip=base_graphics_1$Region.Name),size=1)+geom_point_interactive(aes(tooltip=base_graphics_1$Value),size=1.2)

ggiraph(code = print(graphics_1), tooltip_extra_css = "background-color:black;color:white;font-style:italic;padding:10px;border-radius:10px 20px 10px 20px;",
        tooltip_opacity = 0.75,zoom_max = 5)

4.2.2 Représentation graphics 1 interactif avec plotly : Income growth and distribution (Gini Index)

ggplotly(graphics_1)

4.3 Graphics 2 : Annual population growth (%)

4.3.1 Selection des variables clées

base_3_tp3 <- base_3_tp3%>%
  select(Region.Name,Value,End.Year)

4.3.2 Selection des données des pays de west africa

# Selection des données et aggregation des données pour avoir les données de west africa
western_africa <- base_3_tp3 %>%
  filter(Region.Name %in% country_western_africa)%>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))

# Création de la variable Region.Name pour west africa

western_africa$Region.Name="Western Africa"

# Changement des position des colonnes
western_africa <- western_africa %>%
  select(Region.Name,Value, End.Year)

4.3.3 Selection des données du Niger

data_niger <- base_3_tp3%>%
  filter(Region.Name=="Niger") #Juste prendre les données du Niger avec le filtre

4.3.4 Aggregation des données pour avoir celle de Word

# On a aggreger les données pour avoir les données de tout les pays en faisant la somme des values de chaque pays

world <- base_3_tp3 %>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))
# Creation de la variable Region.Name

world$Region.Name="World"

# Changement des position des colonnes
world <- world %>%
  select(Region.Name,Value, End.Year)

4.3.5 Fusion des trois bases (Western_africa, data_niger, world)

# Supperposion des trois bases
base_graphics_2 <- bind_rows(western_africa,data_niger,world)

4.3.6 Représentation graphics 2 : Annual population growth (%)

graphics_2 <-ggplot(base_graphics_2) +
 aes(x = End.Year, y = Value, colour = Region.Name) +
 geom_point(shape = "circle", size = 1.5) +
 geom_line() +
 scale_color_manual(values = c(Niger = "#218ECA", 
`Western Africa` = "#4A4C4C", World = "#8C868A")) +
 scale_x_continuous(breaks = seq(1960, max(base_graphics_2$End.Year), by = 10)) +  # Définir le pas entre les années à 10
 scale_y_continuous(limits = c(0, max(base_graphics_2$Value) + 1), breaks = seq(0,    max(base_graphics_2$Value) + 1, by = 1)) +
  theme_minimal() +
 theme(legend.position = "top")+
 labs( title = "Figure : Annual population growth (%)", x="",y="")+
 guides(color = guide_legend(override.aes = list(linetype = NA), title = "")) +
 theme(plot.title = element_text(colour = "blue",face = "italic"))
graphics_2

4.4 Graphics 2 interactif

4.4.1 Représentation graphics 2 interactif avec ggiraph : Annual population growth (%)

ggplotly(graphics_2)

4.5 Graphics 3 : Gender inequality index

4.5.1 Selection des variables clées

base_2_tp3 <- base_2_tp3%>%
  select(Region.Name,Value,End.Year)

4.5.2 Selection des données des pays de west africa

# Selection des données et aggregation des données pour avoir les données de west africa
western_africa <- base_2_tp3 %>%
  filter(Region.Name %in% country_western_africa)%>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))

# Création de la variable Region.Name pour west africa

western_africa$Region.Name="Western Africa"

# Changement des position des colonnes
western_africa <- western_africa %>%
  select(Region.Name,Value, End.Year)

4.5.3 Selection des données du Niger

data_niger <- base_2_tp3%>%
  filter(Region.Name=="Niger") #Juste prendre les données du Niger avec le filtre

4.5.4 Aggregation des données pour avoir celle de Word

# On a aggreger les données pour avoir les données de tout les pays en faisant la somme des values de chaque pays

world <- base_2_tp3 %>%
  group_by(End.Year)%>%
  summarise(Value=mean(Value))
# Creation de la variable Region.Name

world$Region.Name="World"

# Changement des position des colonnes
world <- world %>%
  select(Region.Name,Value, End.Year)

4.5.5 Fusion des trois bases (Western_africa, data_niger, world)

# Supperposion des trois bases
base_graphics_3 <- bind_rows(western_africa,data_niger,world)

4.5.6 Représentation graphics 2 : Annual population growth (%)

graphics_3 <- base_graphics_3 %>%
 filter(End.Year >= 1990L & End.Year <= 2021L) %>%
 ggplot() +
 aes(x = End.Year, y = Value, colour = Region.Name) +
 geom_point(shape = "circle", size = 1.5) +
 geom_line() +
 scale_color_manual(values = c(Niger = "#218ECA", 
`Western Africa` = "#4A4C4C", World = "#8C868A")) +
 scale_x_continuous(breaks = seq(1990, max(base_graphics_3$End.Year), by = 5)) +  # Définir le pas entre les années à 10
 scale_y_continuous(limits = c(0, max(base_graphics_3$Value) + 0.2), breaks = seq(0,    max(base_graphics_3$Value) + 0.2, by = 0.2)) +
  theme_minimal() +
 theme(legend.position = "top")+
 labs( title = "Figure : Gender inequality index", x="",y="")+
 guides(color = guide_legend(override.aes = list(linetype = NA), title = "")) +
 theme(plot.title = element_text(colour = "blue",face = "italic"))

graphics_3

4.6 Graphics interactif

ggplotly(graphics_3)

##FIN